<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../vue.js"></script>
</head>
<body>
    <!-- vs插件 
        1.vue3 Snippets
    -->
    <!-- 
        监视属性watch:
            1.当被监视属性变化时,回调函数自动调用,进行相关操作
            2.监视的属性必须存在,才能进行监视
            3.监视的两种写法:
                (1).new Vue时传入watch配置
                (2).通过vm.$watch监视
     -->
    <div id="root">
        <h2>今天天气很{{info}}</h2>
        <button @click="changeWeather">切换天气2</button>
    </div>

    <script>
        Vue.config.productionTip = false
       const vm = new Vue({
            el: '#root',
            data: {
                isHot: true
            },
            computed: {
                info () {
                    return this.isHot?'炎热' : '凉爽' 
                }
            },
            methods: {
                changeWeather () {
                    this.isHot = !this.isHot
                }
            },
            watch: {
                isHot: {
                    immediate: true, //(默认false),初始化时让handler调用一下
                    //handler什么时调用? 当isHot发生改变时调用
                    handler (newValue, oldValue) {
                        console.log('isHot被修改了')
                        console.log('新的值:', newValue)
                        console.log('旧的值:', oldValue)
                    },
                    
                }
            }
        })
        // vm.$watch('isHot', {
        //     immediate: true, //(默认false),初始化时让handler调用一下
        //     //handler什么时调用? 当isHot发生改变时调用
        //     handler (newValue, oldValue) {
        //         console.log('isHot被修改了')
        //         console.log('新的值:', newValue)
        //         console.log('旧的值:', oldValue)
        //     },
        // })

    </script>
</body>
</html>